package main

import "fmt"

func main() {
	//案例1:把前面讲的选择排序封装成方法，实现整型切片的升序降序排序排列
	var sliceA = []int{12, 34, 37, 35, 556, 36, 2}
	fmt.Println(sortIntAsc(sliceA))
	fmt.Println(sliceA)
	//fmt.Println(sortIntDesc(sliceA))
	//fmt.Println(bubbleSortAsc(sliceA))
}

func sortIntAsc(slice []int) []int {
	num := 0
	for i := 0; i < len(slice); i++ {
		for j := i + 1; j < len(slice); j++ {
			if slice[i] > slice[j] {
				box := slice[i]
				slice[i] = slice[j]
				slice[j] = box
			}
			num++
		}
	}

	fmt.Println(num)
	return slice
}

func bubbleSortAsc(slice []int) []int {
	num := 0
	for i := 0; i < len(slice); i++ {
		for j := 0; j < len(slice)-i-1; j++ {
			if slice[j] > slice[j+1] {
				box := slice[j]
				slice[j] = slice[j+1]
				slice[j+1] = box
			}
			num++
		}
	}
	fmt.Println(num)
	return slice
}

func sortIntDesc(slice []int) []int {
	num := 0
	for i := 0; i < len(slice); i++ {
		for j := i + 1; j < len(slice); j++ {
			if slice[i] < slice[j] {
				box := slice[i]
				slice[i] = slice[j]
				slice[j] = box
			}
			num++
		}
	}

	fmt.Println(num)
	return slice
}
